Caching is a common technique that accelerates data access. Usually there is a tradeoff between cost and speed when choosing the technology used to implement the cache. One common way of dealing with the tradeoff is to implement the cache with a hierarchy of layers: faster and costlier technology may be used to implement the higher layers, which tend to be smaller in size due to higher costs per unit of storage; relatively slower and less expensive technology may be used to implement the lower layers, which tend to be larger in size due to better affordability.